﻿#ifndef PAGEWIDGET_H
#define PAGEWIDGET_H

#include <QWidget>
#include <ClosableListWidget/ClosableListWidget.h>

namespace Ui {
class PageWidget;
}

class PageWidget : public QWidget
{
    Q_OBJECT

public:
    explicit PageWidget(QWidget *parent = nullptr);
    ~PageWidget();

    void addPage(const QString& pageName, QWidget* page);
    void setPage(int pageID);
    void removePage(int pageID);
    int currentPageID() const;
    int pageCount() const;

signals:
    void pageNameChanged(int pageID, const QString& newName);

protected:
    void setItemContextMenu(ClosableListWidgetItem* item);
    QWidget* panelAt(int pageID);

protected slots:
    virtual void onAddClicked() = 0;
    void onItemCloseRequested(int row);
    void onItemActived(ClosableListWidgetItem* item);

private slots:
    void on_btnAddPage_clicked();

private:
    Ui::PageWidget *ui;
};

#endif // PAGEWIDGET_H
